﻿using AisEncodingLib.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AisEncodingLib.Models
{
	public class AisMessageType18
	{
		/// <summary>
		/// 用户ID
		/// </summary>
		public int Mmsi { get; init; }

		/// <summary>
		/// 消息ID
		/// </summary>
		public int MessageType { get; init; }

		/// <summary>
		/// 地面航线
		/// </summary>
		public double CourseOverGround { get; init; }

		/// <summary>
		/// 经度
		/// </summary>
		public double Longitude { get; init; }

		/// <summary>
		/// 纬度
		/// </summary>
		public double Latitude { get; init; }

		/// <summary>
		/// 位置准确度
		/// </summary>
		public bool PositionAccuracy { get; init; }

		/// <summary>
		/// 转发指示符
		/// </summary>
		public int RepeatIndicator { get; init; }

		/// <summary>
		/// 地面航速
		/// </summary>
		public double SpeedOverGround { get; init; }

		/// <summary>
		/// 时戳
		/// </summary>
		public int TimeStampSecond { get; init; }

		/// <summary>
		/// 实际航向
		/// </summary>
		public int TrueHeadingDegrees { get; init; }

		/// <summary>
		/// B类装置标志
		/// </summary>
		public ClassBUnit CsUnit { get; init; }

		/// <summary>
		/// B类显示器标志
		/// 0 = 显示器不可用；无法显示消息12和14
		/// 1 = 装备有显示消息12和14的集成显示器
		/// </summary>
		public bool HasDisplay { get; init; }

		/// <summary>
		/// B类DSC标志
		/// 0 = 未装备DSC功能
		/// 1 = 装备了DSC功能（专用或分时共用）
		/// </summary>
		public bool IsDscAttached { get; init; }

		/// <summary>
		/// B类带宽标志
		/// 0 = 可以超出船用频段的上限525 kHz工作
		/// 1 = 可以超出整个船用频段工作
		/// </summary>

		public bool CanSwitchBands { get; init; }

		/// <summary>
		/// B类消息22标志
		/// 0 = 未经消息22进行频率管理，仅对AIS1、AIS2起作用
		/// 1 = 经消息22进行频率管理
		/// </summary>
		public bool CanAcceptMessage22ChannelAssignment { get; init; }

		/// <summary>
		/// 模式标志
		/// 0 = 台站工作在自主和连续模式=默认值
		/// 1 = 台站工作在指配模式
		/// </summary>
		public bool IsAssigned { get; init; }

		/// <summary>
		/// RAIM标志
		/// 0 = RAIM未使用 = 默认值；
		/// 1 = RAIM正在使用
		/// </summary>
		public bool RaimFlag { get; init; }

		/// <summary>
		/// 通信状态选择器标志
		/// 0 = SOTDMA通信状态如下
		/// 1 = ITDMA通信状态如下
		/// </summary>
		public ClassBRadioStatusType RadioStatusType { get; init; }

	}
}
